#ifndef INDICEDOCUMENTOS_H_
#define INDICEDOCUMENTOS_H_

#pragma once
#include <stdint.h>
#include "Archivo.h"

typedef struct {
    uint32_t nroDoc;
    uint32_t offset;
} Registro;

class IndiceDocumentos: public Archivo {
public:
	IndiceDocumentos(const char* filename):Archivo(filename) {
	}

    void add(uint32_t nroDoc, uint32_t offset) {
        this->write((char*) &nroDoc, sizeof(uint32_t));
        this->write((char*) &offset, sizeof(uint32_t));
	}

	uint32_t getOffset(uint32_t nroDoc) {
        uint32_t doc, off;

        int offset = nroDoc * (sizeof(uint32_t) * 2) - (sizeof(uint32_t) * 2);
		this->seekg(offset, ios::beg);
        this->read((char*)&doc, sizeof(uint32_t));
        this->read((char*)&off, sizeof(uint32_t));		

        return off;
	}

	~IndiceDocumentos() {
		this->close();
	}

};

#endif /* INDICEDOCUMENTOS_H_ */
